#ifndef __QUEUE_H
#define __QUEUE_H
#ifdef __cplusplus
extern "C"{
#endif
/* Includes ------------------------------------------------------------------*/
//头文件
/*标准头文件*/
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
/*用户头文件*/
/*思路：
 *1、使用顺序表（数组）的存储结构存储队列数据
 *2、先进先出，队首指针：*front，队尾指针：*rear，进队（入队）rear指针后移，出队（离队）front指针右移动
 *3、*/
/* Private types -------------------------------------------------------------*/


/*1、基于顺序表结构的队列结构体
 *2、初始化队列
 *3、获取队列元素个数
 *4、元素入队列
 *5、元素出队列
 *6、释放队列内存
 *7、遍历队列*/
//私有结构体、枚举、共用体等
typedef struct queue
{
	int *data;//队列
	size_t capacity;//队列容量
	size_t length;//队列长度（队列中实际存放的数据长度）
}Queue;
/*初始化队列*/
void initQueue(Queue *queue, size_t capacity);
/*返回队列内元素个数*/
size_t getSize(const Queue *queue);
/*添加新元素*/
void enqueue(Queue *queue, int element);
/*元素出队列*/
int dequeue(Queue *queue);
/*释放队列内存*/
void destroyQueue(Queue *queue);
/*遍历队列*/
void printQueue(Queue *queue);

#ifdef __cplusplus
}
#endif
#endif